<?php

class Application_Model_Produto extends Zend_Db_Table_Abstract {

    protected $_name = 'produtos';
    protected $_primary = 'idprodutos';
    private static $instance;
    protected $_schema = 'pub';

    public static function getInstance() {
        if (!isset(self::$instance)) {
            self::$instance = new Application_Model_Produto();
            return self::$instance;
        }
        return self::$instance;
    }

    public function insert($data) {
        if (isset($data['produto']) && isset($data['estoque']) && isset($data['estoque_min']) && isset($data['preco']) && 
                isset($data['familia'])  && isset($data['imagem']) ){
            parent::insert($data);
        }else{
            die('erro insert Application_Model_Produto');
        }
    }

    public function update(array $data, $where = '') {
        $where = 'idprodutos = ' . $data['idprodutos'];
        parent::update($data, $where);
    }

    public function getById($id) {
        return $this->fetchAll("idprodutos = " . $id);
    }

    public function getAll(){
        $sql = "select p.*,replace( p.preco, '.', ',' ) as precol from $this->_schema.$this->_name p where p.dt_exclusao is null ";
        return $this->getAdapter()->fetchAll($sql);
    }

    public function getList(){
        $sql = 'select idprodutos,produto from '.$this->_schema.'.'.$this->_name;
        return $this->getAdapter()->fetchAll($sql);
    }

    public function getByIdRow($id) {
        return $this->fetchRow("idprodutos = " . $id);
    }
    
    public function atualizaQuantidade($data){
         $where = 'idprodutos = ' . $data['idprodutos'];
        parent::update($data, $where);
    }
    
    public function getQuantidadeById($id){
        $sql = 'select estoque from '.$this->_schema.'.'.$this->_name. ' where idprodutos = ' . $id;
        return $this->getAdapter()->fetchRow($sql);
    }
    
    public function remove($data){
        $data['dt_exclusao'] = Zend_Date::now()->get('Y/M/d/');
        $where = ' idprodutos = ' .$data['idprodutos'];
        parent::update($data, $where);
    }
    
    public function getProdutosByFamily($familias){
        $sql = 'select * from produtos where familia in ('.$familias.')';
        return $this->getAdapter()->fetchAll($sql);
    }
    
    public function getEstoqueMin(){
        $sql = "select p.* ,p.*,replace( p.preco, '.', ',' ) as precol from produtos p
        where p.estoque_min >= p.estoque 
        and p.dt_exclusao is null ";
        return $this->getAdapter()->fetchAll($sql);
    }
}